#include<imagepro.h>
#include "imageloader.h"
ImagePro::ImagePro(){

}

void ImagePro::Pro(int H_Uper=150,int H_Low=10){
   // QImage Qim =Imageloader::getInstance()->getImg();
    cv::Mat image=cv::Mat::zeros(800,600,CV_32F);//=QimToMat(Qim);
//image.setTo(0);
//    int lo=0;
//    int lo2=255;
//    CAM=image.adjustROI(80,550,80,750);
//    cv::medianBlur(CAM,CAM,7);
//    cv::Mat h_plane=CAM;
//    cv::Mat hsv;
//    cv::cvtColor(CAM,hsv,cv::COLOR_RGB2HSV);
//    cv::Mat thresholed;
//    cv::inRange(hsv,cv::Scalar(H_Uper,0,lo),cv::Scalar(H_Low,0,lo2),thresholed);
//    cv::Mat ims=thresholed;
//    cv::Mat im = ims;
    qDebug()<<"aaa";
    Imageloader::getInstance()->setImgPro(MatToQim(image));


//    Create init Zero image
//            h_x= zeros([im.shape[0],1], int)
//            h_y= zeros([1,im.shape[1]], int)
//            h_plane=zeros(im.shape,np.uint8)
//     Count Pixel  X ,Y
//            for y in range(0, (im.shape[1]-1)):
//        h_y[0,y]= cv2.countNonZero(im[0:im.shape[0]-1,y:y+1])
//      for x in range(0, (im.shape[0]-1)):
//      h_x[x,0]= cv2.countNonZero(im[x:x+1,0:im.shape[1]-1])
//      find Range Pixel
}
cv::Mat ImagePro::QimToMat(QImage Qim){
    return cv::Mat(Qim.height(),Qim.width(),CV_8UC3,Qim.scanLine(0));
}
QImage ImagePro::MatToQim(cv::Mat matOriginal){
    return QImage((uchar*)matOriginal.data,matOriginal.cols ,matOriginal.rows,matOriginal.step,QImage::Format_RGB888);
}

//lass imagePro:
//    def __init__(self,image,H_Uper=150,H_Low=10):
//        lo=0
//        lo2=255
//        print "aa"
//        CAM =image[80:550,80:750]
//        #    blur = cv2.GaussianBlur(CAM,(3,3),0)
//        CAM = cv2.medianBlur(CAM,7)
//        h_plane=CAM
//        hsv = cv2.cvtColor(CAM,cv2.COLOR_BGR2HSV)
//        thresholded_img=cv2.inRange(hsv, np.array((H_Low, 0, lo)),  np.array((H_Uper, 255, lo2)))
//        ims=thresholded_img
//        im=ims
//        print "aaa"

//        #Create init Zero image
//        h_x= zeros([im.shape[0],1], int)
//        h_y= zeros([1,im.shape[1]], int)
//        h_plane=zeros(im.shape,np.uint8)
//        #Count Pixel  X ,Y
//        for y in range(0, (im.shape[1]-1)):
//            h_y[0,y]= cv2.countNonZero(im[0:im.shape[0]-1,y:y+1])

//        for x in range(0, (im.shape[0]-1)):
//            h_x[x,0]= cv2.countNonZero(im[x:x+1,0:im.shape[1]-1])
//            #find Range Pixel
//        x1=0
//        x2=0
//        y1=0
//        y2=0
//        l=0
//        r=0
//        m=im.shape[0]/2
//        for x in range(0, m):
//            l=h_x[m+x,0]
//            if (l==0):
//                x1=m+x
//                break
//        for x in range(0, m):
//            r=h_x[m-x,0]
//            if r==0:
//                x2=m-x
//                break
//        l=0
//        r=0
//        m=im.shape[1]/2
//        for y in range(0, m):
//            l=h_y[0,m+y]
//            if l==0:
//                y1=m+y
//                break
//        for y in range(0, m):
//            r=h_y[0,m-y]
//            if r==0:
//                y2=m-y
//                break
//                #print  Resoue
//        h_plane[200,y1]=100
//        h_plane[200,y2]=100
//        h_plane[x1,200]=100
//        h_plane[x2,200]=100
//        for y in range(0, im.shape[1]):
//            h_plane[h_y[0,y],y]=255
//        for x in range(0, im.shape[0]):
//            h_plane[x,h_x[x,0]]=255
//        self.h_plane=h_plane
//        self.ims=ims
//        #        cv2.imshow("3",h_plane)
//        #        cv2.imshow("2",ims)

//        self.sizey = '%.2f' %((y1-y2)/30.0)
//        self.sizex = '%.2f' %((x1-x2)/30.0)
//        print self.sizex
//        print self.sizey
//    def getx(self):
//        return self.sizex
//    def gety(self):
//        return self.sizey
//    def saveImP(self,path):
//        cv2.imwrite(path,self.ims)
